/**
 * @file .
 * @author wangxiaowei0303@163.com
 */

#ifndef org_wxw0303_bishe_src_GaussianNoise_GaussianNoise_h_
#define org_wxw0303_bishe_src_GaussianNoise_GaussianNoise_h_

#include "../NoiseAlgorithm/NoiseAlgorithm.h"

class GaussianNoise: public NoiseAlgorithm {
public:
    inline 
    GaussianNoise();

    virtual
    ~GaussianNoise();

    virtual void
    help(std::string &buf) const;

    virtual void
    set(const char *argname,const char *argval);

    virtual const char*
    get(const char *argname,std::string &buf) const;
    
    virtual void
    getSupportedArgs(std::vector<std::string> &arglist) const;

    virtual void
    process(cv::Mat &img);

private:
    double mean;
    double stddev;
};

inline
GaussianNoise::GaussianNoise()
{
    this->mean = 0;
    this->stddev = 20;
}

#endif /* org_wxw0303_bishe_src_GaussianNoise_GaussianNoise_h_ */

